Motion compensated inter-frame coding has been widely adopted in various coding standards, such as MPEG-1/2/4 and H.261/H.263/H.264/AVC. While motion-compensated inter-frame coding can effectively reduce bitrate for compressed video, intra coding is required to compress the regions with high motions or scene changes. Besides, intra coding is also used to process an initial picture or to periodically insert I-pictures or I-blocks for random access or for alleviation of error propagation. Intra prediction exploits the spatial correlation within a picture or within a picture region. In practice, a picture or a picture region is divided into blocks and the intra prediction is performed on a block basis. Intra prediction for a current block can be relied upon pixels in neighboring blocks that have been processed. For example, if blocks in a picture or picture region are processed row by row from top to bottom and from left to right, neighboring blocks on the top and neighboring blocks on the left of the current block can be used to form intra predictor for pixels in the current block. While any pixels in the processed neighboring blocks can be used for intra predictor of pixels in the current block, very often only pixels of the neighboring blocks that are adjacent to the current block boundaries on the top and on the left are used.
The intra predictor is usually designed to exploit spatial features in the picture such as smooth area (DC mode), vertical line or edge, horizontal line or edge and diagonal line or edge. Furthermore, a spatial correlation often exists in both luminance (luma) and chrominance (chroma) components. Therefore, the intra luma prediction mode can be used as a candidate for the intra chroma prediction mode. In recent development in High Efficiency Video Coding (HEVC), considering the correlation between luma and chroma components, a chroma intra prediction method has been proposed by Chen et al., in “CE6.a: Chroma intra prediction by reconstructed luma samples”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 4th Meeting: Daegu, KR, 20-28 Jan. 2011, Document: JCTVC-D350. According to Chen et al., reconstructed luma blocks can be used as predictors for co-located chroma blocks. The type of chroma intra prediction is termed as LM prediction.
According to the LM prediction, the chroma values are predicted from reconstructed luma values of the same block according to the following model:PredC[x,y]=α·RecL′[x,y]+β, for x=0, . . . (N−1), and y=0, . . . (N−1),  (1)where PredC[x,y] indicates the predictor for a chroma sample at [x,y] of a chroma block, RecL′[x,y] indicates the luma sample at [x,y] of the corresponding luma block, and N denotes the horizontal resolution (i.e., the vertical resolution) of the chroma block to be predicted. Parameters α and β are derived from causal reconstructed samples around the current block. Since the luma component usually has higher resolution than the chroma components, the reconstructed luma component has to be decimated to match the resolution of the chroma components. For example, for 4:2:0 sampling format, the U and V components may have half of the number of pixels in the vertical and the horizontal directions as the luma component. Therefore, 2:1 resolution reduction in the vertical and the horizontal directions has to be applied to the reconstructed luma sample RecL[x,y] to derive RecL′[x,y]. The resolution reduction can be achieved by downsampling process or subsampling process.
The downsampling process refers to signal decimation by applying proper low-pass filtering before downsampling (also called subsampling in the art) to reduce or avoid possible signal aliasing. On the other hand, subsampling process performs direct downsampling without prior filtering. Both the downsampling process and the subsampling process are called decimation process in this disclosure. While the subsampling processing may cause signal aliasing, the subsampling processing is used in some signal processing systems due to its simplicity. For chroma intra prediction using the LM mode, Chen et al. apply the sub-sampling process in the horizontal direction and the down-sampling process in the vertical direction, where the vertical down-sampling process is performed as follows:RecL′[x,y]=(RecL[2x,2y]+RecL[2x,2y+1])>>1, for x=−1, . . . ,(N−1) and y=−1, . . . ,(N−1),  (2)where N denotes the horizontal resolution (i.e., the vertical resolution) of the chroma block to be predicted and the resolution-reduced (i.e., decimated) luma block.
Parameters α and β are derived based on causal reconstructed chroma pixels around a current chroma block and causal reconstructed luma pixels around a current luma block as shown in FIG. 1A and FIG. 1B. The causal reconstructed chroma pixels on the top 112 and on the left 114 of the current chroma block 110, and the decimated reconstructed luma samples on the top 130 and on the left 140 of the current luma block 120 as shown in FIG. 1A and FIG. 1B respectively. These causal neighboring pixels shown as dark dots in FIG. 1A and FIG. 1B are used to derive parameters α and β as follows:
                              α          =                                                                      I                  ·                                                            ∑                                              i                        =                        0                                                                    I                        -                        1                                                              ⁢                                                                                  ⁢                                                                                            Rec                          c                                                ⁡                                                  (                          i                          )                                                                    ·                                                                        Rec                          L                          ′                                                ⁡                                                  (                          i                          )                                                                                                                    -                                                      ∑                                          i                      =                      0                                                              I                      -                      1                                                        ⁢                                                                          ⁢                                                                                    Rec                        c                                            ⁡                                              (                        i                        )                                                              ·                                                                  ∑                                                  i                          =                          0                                                                          I                          -                          1                                                                    ⁢                                                                                          ⁢                                                                        Rec                          L                          ′                                                ⁡                                                  (                          i                          )                                                                                                                                                                  I                  ·                                                            ∑                                              i                        =                        0                                                                    I                        -                        1                                                              ⁢                                                                                  ⁢                                                                                            Rec                          L                          ′                                                ⁡                                                  (                          i                          )                                                                    ·                                                                        Rec                          L                          ′                                                ⁡                                                  (                          i                          )                                                                                                                    -                                                      (                                                                  ∑                                                  i                          =                          0                                                                          I                          -                          1                                                                    ⁢                                                                                          ⁢                                                                        Rec                          L                          ′                                                ⁡                                                  (                          i                          )                                                                                      )                                    2                                                      =                                          A                1                                            A                2                                                    ,                                  ⁢                                  ⁢        and                            (        3        )                                                          ⁢                              β            =                                                                                ∑                                          i                      =                      0                                                              I                      -                      1                                                        ⁢                                                                          ⁢                                                            Rec                      c                                        ⁡                                          (                      i                      )                                                                      -                                  α                  ·                                                            ∑                                              i                        =                        0                                                                    I                        -                        1                                                              ⁢                                                                                  ⁢                                                                  Rec                        L                        ′                                            ⁡                                              (                        i                        )                                                                                                        I                                ,                                    (        4        )            where RecC(i) and RecL′(i) indicate reconstructed chroma samples and decimated luma samples around the chroma block 110 and the luma block 120 respectively, and I indicates total number of neighboring data. For the example shown in FIG. 1A and FIG. 1B, where the chroma block size is N×N and the luma block size is 2N×2N, total involved samples number I is 2N. When left or above causal samples are unavailable, padding samples are used instead.
The computation of each RecL′[x,y] sample requires two reconstructed luma samples as shown in equation (2). In hardware implementation, when the luma block 120 is just below the largest coding unit (LCU), two line buffers for storing the reconstructed luma lines 132 and 134 above the current block 120 are required in order to derive parameters α and β for chroma intra prediction. The size of line buffers for storing the reconstructed luma lines 132 and 134 is proportional to the picture width. For large pictures, the size of line buffers for deriving parameters α and β may be substantial. The requirement of large size line buffer will lead to increased system hardware cost, particularly for on-chip line buffer implementation, such as Static Random Access Memory (SRAM). Accordingly, it is desirable to develop chroma intra prediction methods and apparatuses that use reduced line buffers. The reconstructed luma samples on the left side of the current block usually are not an issue for deriving parameters α and β due to the small size memory requirement, i.e. on-chip column buffer, corresponding to these samples. After a current block is intra-coded, there is no need of the reconstructed luma samples on the left of the current block for deriving parameters α and β for subsequently blocks.